package com.ruoyi.kanban.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 看板订单对象 kanban_order
 * 
 * @author ruoyi
 * @date 2025-01-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("kanban_order")
public class KanbanOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 看板编码 */
    @TableField("kanban_code")
    private String kanbanCode;

    /** 看板组ID */
    @TableField("kanban_group_id")
    private String kanbanGroupId;

    /** 框架协议ID */
    @TableField("framework_id")
    private Long frameworkId;

    /** 框架协议编码 */
    @TableField("framework_code")
    private String frameworkCode;

    /** 收货公司ID */
    @TableField("receiver_company_id")
    private Long receiverCompanyId;

    /** 收货公司名称 */
    @TableField("receiver_company_name")
    private String receiverCompanyName;

    /** 发货公司ID */
    @TableField("sender_company_id")
    private Long senderCompanyId;

    /** 发货公司名称 */
    @TableField("sender_company_name")
    private String senderCompanyName;

    /** 收货部门ID */
    @TableField("receiver_dept_id")
    private Long receiverDeptId;

    /** 收货部门名称 */
    @TableField("receiver_dept_name")
    private String receiverDeptName;

    /** 发货部门ID */
    @TableField("sender_dept_id")
    private Long senderDeptId;

    /** 发货部门名称 */
    @TableField("sender_dept_name")
    private String senderDeptName;

    /** 收货仓库ID */
    @TableField("receiver_warehouse_id")
    private String receiverWarehouseId;

    /** 发货仓库ID */
    @TableField("sender_warehouse_id")
    private String senderWarehouseId;

    /** 收货仓库 */
    @TableField("receiver_warehouse")
    private String receiverWarehouse;

    /** 发货仓库 */
    @TableField("sender_warehouse")
    private String senderWarehouse;

    /** 收货联系人 */
    @TableField("receiver_contact")
    private String receiverContact;

    /** 收货联系电话 */
    @TableField("receiver_phone")
    private String receiverPhone;

    /** 发货联系人 */
    @TableField("sender_contact")
    private String senderContact;

    /** 发货联系电话 */
    @TableField("sender_phone")
    private String senderPhone;

    /** 物料编码 */
    @TableField("material_code")
    private String materialCode;

    /** 物料名称 */
    @TableField("material_name")
    private String materialName;

    /** 物料单位 */
    @TableField("material_unit")
    private String materialUnit;

    /** 包装类型 */
    @TableField("package_type")
    private String packageType;

    /** 包装容量 */
    @TableField("package_capacity")
    private BigDecimal packageCapacity;

    /** 需求数量 */
    @TableField("required_qty")
    private BigDecimal requiredQty;

    /** 单价 */
    @TableField("unit_price")
    private BigDecimal unitPrice;

    /** 税率 */
    @TableField("tax_rate")
    private BigDecimal taxRate;

    /** 要求交货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("required_delivery_time")
    private Date requiredDeliveryTime;

    /** 计划交货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("planned_delivery_time")
    private Date plannedDeliveryTime;

    /** 业务状态 */
    @TableField("business_status")
    private Integer businessStatus;

    /** 当前信息 */
    @TableField("current_info")
    private String currentInfo;

    /** 通知ID */
    @TableField("notification_id")
    private Long notificationId;

    /** 发货方确认状态 */
    @TableField("sender_confirm_status")
    private Integer senderConfirmStatus;

    /** 发货方确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("sender_confirm_time")
    private Date senderConfirmTime;

    /** 发货方确认用户 */
    @TableField("sender_confirm_user")
    private String senderConfirmUser;

    /** 发货方确认备注 */
    @TableField("sender_confirm_remark")
    private String senderConfirmRemark;

    /** 箱标是否已打印 */
    @TableField("box_label_printed")
    private Integer boxLabelPrinted;

    /** 箱标打印时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("box_label_print_time")
    private Date boxLabelPrintTime;

    /** 箱标打印次数 */
    @TableField("box_label_print_count")
    private Integer boxLabelPrintCount;

    /** 看板是否已打印 */
    @TableField("kanban_printed")
    private Integer kanbanPrinted;

    /** 看板打印时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("kanban_print_time")
    private Date kanbanPrintTime;

    /** 看板打印次数 */
    @TableField("kanban_print_count")
    private Integer kanbanPrintCount;

    /** 备注 */
    @TableField("remark")
    private String remark;

    /** 特殊要求 */
    @TableField("special_requirements")
    private String specialRequirements;

    /** 创建部门FID */
    @TableField("create_dept_fid")
    private String createDeptFid;

    /** 删除标志 */
    @TableField("del_flag")
    private Integer delFlag;
}